Object detection may be used to determine whether and/or where in an image a certain object such as a human face, a human body, an automobile, or the like appears. For example, face detection may be used in human-computer interaction, photo album management, biometrics, video surveillance, automatic focus in camera imaging, image or video search and retrieval, and the like.
In some implementations, cascade classifiers may be used to perform object detection. To support multiple object detection models (e.g., to search for multiple objects while performing a search), different models are trained for implementation by the cascade classifier in a detection phase. For example, to support profile face detection and rotated face detection, different models (e.g., a different model for each rotation or profile) may be trained and implemented for such profiles and rotations.
However, such implementations may use substantial memory space and power particularly in mobile devices. Furthermore, even in larger form factor devices such as laptop computers and the like having powerful central processing units, such implementations may cause cache thrashing due to rapid exchanges in memory, which may significantly decrease the performance of the implemented object detector.
As such, existing techniques do not provide object detection implementations with model sizes that are suitable for mobile devices and for high performance system performance. Such problems may become critical as object detection becomes more widespread.